package com.ten.teacher.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import com.ten.common.core.entity.EduTeacher;
import com.ten.common.core.vo.Result;
import com.ten.teacher.vo.BeTeacherFromTbMemberVo;
import com.ten.teacher.vo.TeacherListVo;
import com.ten.teacher.vo.TeacherStatusVo;
import com.ten.teacher.vo.TeacherUpdateVo;

/**
 * @author ：Wqw
 * @date ：Created in 2022/12/7 15:36
 * @description：查询讲师列表的service层
 * @modified By：
 * @version:
 */
public interface EduTeacherService extends IService<EduTeacher> {
    /**
     * 查询讲师列表,模糊查询,分页
     * page 页码
     * limit 每页显示行数
     * TeacherListVo 条件类 用来封装模糊查询和分页*/
    public Result<IPage<EduTeacher>> selectTeacherList(Integer page, Integer limit, TeacherListVo teacherListVo);

    /**修改讲师信息
     *TeacherUpdateVo 条件类 */
    public Result<EduTeacher> updateTeacherById(TeacherUpdateVo teacherUpdateVo);

    /**更新讲师状态
     *未通过审核的讲师不能改变状态
     *1，根据讲师id连表查询讲师审核状态
     * 2，根据审核状态判断是否能够修改讲师状态
     *TeacherStatusVo 条件类 */
    public Result<EduTeacher> updateStatus(TeacherStatusVo teacherStatusVo);


    /**
     * 会员申请讲师
     * 需要远程调用讲师微服务中的方法
     * 将编译的属性放入讲师列表不显示，
     * 审核列表中状态为待审核*/
    Result<EduTeacher> addTeacher(BeTeacherFromTbMemberVo beTeacherFromTbMemberVo);


/*************************************供远端调用的微服务************************************************/

    /**根据讲师手机查询讲师信息*/
    Result<EduTeacher> getTeacherByMobile(String mobile);

    /**根据手机号修改讲师信息*/
    Result<EduTeacher> updateTeacherByMember(TeacherUpdateVo teacherUpdateVo);

    /**根据讲师id查询讲师信息*/
    Result<EduTeacher> getTeacherById(String id);


}
